home *** CD-ROM | disk | FTP | other *** search
/ Hyper Animation Series: Viper (Limited Edition) / Hyper Animation Series: VIPER (Limited Edition).iso / pc / SYSTEM / class / BOSS2Nomal.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-08-04  |  3.8 KB  |  129 lines

  1. class BOSS2Nomal extends EnemyAction {
  2.    private int fxSpeedY = 65536;
  3.    private int fxWeight = 65536;
  4.    private int fxSpeedX = 0;
  5.    private int nBound = 0;
  6.  
  7.    public BOSS2Nomal(StgFrame var1) {
  8.       super(var1);
  9.    }
  10.  
  11.    public boolean action(EnemyIndex var1) {
  12.       BOSS2Index var2 = (BOSS2Index)var1;
  13.       int var3 = super.resource.getEnemySpeed();
  14.       super.resource.getEnemy();
  15.       PlayerShipIndex var4 = super.resource.getPlayerShipIndex();
  16.       int var5 = ((StgObjectIndex)var1).getPosition().getX();
  17.       ((StgObjectIndex)var4).getPosition().getX();
  18.       int var6 = this.fxSpeedX;
  19.       int var7 = this.fxSpeedY;
  20.       var6 = Fixed.Mul(var6, var3);
  21.       var7 = Fixed.Mul(var7, var3);
  22.       ((StgObjectIndex)var1).movePosition(var6, var7, 0);
  23.       if (((StgObjectAction)this).checkHitBg(var1, 1)) {
  24.          while(((StgObjectAction)this).checkHitBg(var1, 1)) {
  25.          }
  26.  
  27.          short var8 = (short)(Fixed.Random() >> 4);
  28.          short var9 = 8192;
  29.          short var10 = (short)('ΦÇÇ' - var9 / 2);
  30.          int var11 = 393216 + (Fixed.Random() << 1);
  31.          this.fxSpeedX = Fixed.Sin((short)(var10 + var8));
  32.          this.fxSpeedY = Fixed.Cos((short)(var10 + var8));
  33.          this.fxSpeedX = Fixed.Mul(this.fxSpeedX, var11);
  34.          this.fxSpeedY = Fixed.Mul(this.fxSpeedY, var11);
  35.          this.fxWeight = 24576 + (Fixed.Random() >> 1);
  36.          if (var5 > 12058624) {
  37.             this.fxSpeedX = Fixed.Mul(this.fxSpeedX, 32768);
  38.          } else if (var5 < 8519680) {
  39.             this.fxSpeedX = Fixed.Mul(this.fxSpeedX, 32768);
  40.          }
  41.  
  42.          if (var5 > 14155776) {
  43.             this.fxSpeedX = -this.fxSpeedX;
  44.          } else if (var5 < 6553600) {
  45.             this.fxSpeedX = this.fxSpeedX;
  46.          } else if ((Fixed.Random() & 'ΦÇÇ') != 0) {
  47.             this.fxSpeedX = this.fxSpeedX;
  48.          } else {
  49.             this.fxSpeedX = -this.fxSpeedX;
  50.          }
  51.  
  52.          ++this.nBound;
  53.          if (this.nBound == 8) {
  54.             int[] var12 = var2.getTable();
  55.             int var13 = var2.getCount();
  56.             switch (var12[var13]) {
  57.                case 0:
  58.                   var1.setEnemyAction(new BOSS2Attack1(super.resource));
  59.                   break;
  60.                case 1:
  61.                   var1.setEnemyAction(new BOSS2Attack2(super.resource));
  62.                   break;
  63.                case 2:
  64.                   var1.setEnemyAction(new BOSS2Attack3(super.resource));
  65.                   break;
  66.                default:
  67.                   System.out.println("BOSS2Nomal.action() Err");
  68.             }
  69.  
  70.             var2.setCount(var13 + 1);
  71.          }
  72.       }
  73.  
  74.       this.fxSpeedY += this.fxWeight;
  75.       this.destroy(var1);
  76.       return true;
  77.    }
  78.  
  79.    public boolean checkHitPlayerShip(EnemyIndex var1, PlayerShipIndex var2) {
  80.       super.resource.getEnemy();
  81.       return ((StgObjectIndex)var1).checkHit(var2);
  82.    }
  83.  
  84.    public boolean checkHitPlayerShot(EnemyIndex var1, PlayerShotIndex var2) {
  85.       boolean var5 = false;
  86.       super.resource.getEnemy();
  87.       if (((StgObjectIndex)var1).checkHit(var2)) {
  88.          int var3 = var1.getHitPoint();
  89.          int var4 = var2.getPower();
  90.          var3 -= var4;
  91.          if (var3 < 0) {
  92.             var3 = 0;
  93.          }
  94.  
  95.          var1.setHitPoint(var3);
  96.          var5 = true;
  97.       }
  98.  
  99.       return var5;
  100.    }
  101.  
  102.    public boolean checkHitBom(EnemyIndex var1) {
  103.       super.resource.getEnemy();
  104.       int var2 = var1.getHitPoint();
  105.       var2 -= 983040;
  106.       if (var2 < 0) {
  107.          var2 = 0;
  108.       }
  109.  
  110.       var1.setHitPoint(var2);
  111.       return true;
  112.    }
  113.  
  114.    private boolean destroy(EnemyIndex var1) {
  115.       super.resource.getEnemy();
  116.       SpriteAnimeIndex var2 = ((StgObjectIndex)var1).getSpriteAnimeIndex();
  117.       boolean var3 = false;
  118.       Status var4 = super.resource.getStatus();
  119.       if (var1.getHitPoint() == 0) {
  120.          var4.add(var1.getScore());
  121.          var2.setSpriteAnimeData(StgData.getSpriteAnimeDestroyA());
  122.          var1.setEnemyAction(new BOSSDestroy(super.resource));
  123.          var3 = true;
  124.       }
  125.  
  126.       return var3;
  127.    }
  128. }
  129.